﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Emulator.Base.CPU
{
    public abstract class CPUBase
    {
        public Func<byte, int> ReadMemory;
        public Action<int, int> WriteMemory;
        public abstract int FlagRegister { get; set; }

        public abstract int ReadRegister8(int aRegisterIndex);
        public abstract void WrtiedRegister8(int aRegisterIndex, int aValue);
        public abstract int ReadRegister16(int[] aRegisterPair);

        public abstract int StackPointer { get; }

        public abstract byte ActiveReadMemory();

        public abstract void SetRegister(int aRegisterIndex, int aValue);
        public abstract void ResetRegister(int aRegisterIndex, int aValue);
    }
}
